package com.yx.websocketim

import android.util.Log

/**
 * Creator:Yx
 * Time:2022/7/11 16:42
 * Description: 日志工具类
 * Kotlin 中实现静态方法效果，用的就是伴生对象
 */
class LogUtils {
    companion object {

        private var ON_OFF: Boolean = true

        fun iYx(message: String) {
            if (ON_OFF) {
                var msg = message
                val stackTraceElement = Thread.currentThread().stackTrace[3]
                //  获取文件名.即xxx.java
                val fileName = stackTraceElement.fileName
                // 信息太长,分段打印
                // 因为String的length是字符数量不是字节数量所以为了防止中文字符过多，
                //   把4*1024的MAX字节打印长度改为2001字符数
                val max_str_length = 2001 - 4
                // 大于4000时
                while (msg.length > max_str_length) {
                    // $ 表示一个变量名或者变量值,$fileName表示变量值
                    // val s1 = "a is $a" val s2 = "${s1.replace("is", "was")}, but now is $fileName"
                    // 运行结果：a was 1, but now is XXXClass
                    Log.i("aaaa", "$fileName~ ：" + msg.substring(0, max_str_length))
                    msg = msg.substring(max_str_length)
                }
                // 剩余部分
                Log.i("aaaa", "$fileName~ ：$msg")
            }
        }


        fun i(message: String) {
            if (ON_OFF) {
                val stackTraceElement = Thread.currentThread().stackTrace[3]
                //  获取文件名.即xxx.java
                val fileName = stackTraceElement.fileName
                Log.i("aaaa", "$fileName~ ：$message")
            }
        }

    }

}